#pragma once
#include "Xps/Protocol/IProtocol.h"
#include "Xps/Packet/IPacket.h"

namespace Xps
{
    class ITask abstract
    {
    public:
        typedef boost::shared_ptr<ITask> Ptr;

        virtual const std::string & getName() const = 0;
        virtual bool IsSubscribedToProtocol(const std::string &_ProtocolName) = 0;
        virtual void Perform(const std::string &_ProtocolName, const IObject *_Object) = 0;
        virtual ~ITask(void){}
    };
};